#ifndef __BILBAO_INCLUDES_H__
#define __BILBAO_INCLUDES_H__

#include "bilbao/defs.h"

// CPP Headers
#include <iostream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <sstream>
#include <exception>
#include <string>
#include <typeinfo>
#include <ctime>
//
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <stdexcept>

// C Headers
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <regex.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <math.h>

//libCUrl
#include <curl/curl.h>

//Openssl
#include <openssl/sha.h>
#include <openssl/evp.h>

//xerces-c
#include <xercesc/dom/DOM.hpp>
#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMDocumentType.hpp>
#include <xercesc/dom/DOMElement.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMNodeIterator.hpp>
#include <xercesc/dom/DOMNodeList.hpp>
#include <xercesc/dom/DOMText.hpp>
#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/util/XMLUni.hpp>
#include <xercesc/util/OutOfMemoryException.hpp>
#include <xercesc/parsers/SAXParser.hpp>
#include <xercesc/framework/MemBufInputSource.hpp>
#include <xercesc/sax/HandlerBase.hpp>
#include <xercesc/sax2/DefaultHandler.hpp>

//sqLite
#include <sqlite3.h>

#if BILBAO_PLATAFORM == BILBAO_WIN32
	#include <windows.h>
	#include <process.h>
	#include <io.h>
#else
	#include <pthread.h>
	#include <unistd.h>
#endif

#include "bilbao/Constants.h"
#include "bilbao/lang/Logger.h"

#endif//__BILBAO_INCLUDES_H__
